package com.zhehekeji.opsys.api.service.manager;

import com.zhehekeji.opsys.api.resp.*;

/**
 * @ClassName IOperationManagerService
 * @Description TODO
 * @author chenweiliu chenwei.liu@163.com
 * @date 2016-1-18   下午3:23:48
 */
public interface IOperationManagerService {
	
	/**
	 * 
	* @Title: getProductList 
	* @Description: 获取产品列表
	* @param cpCode CP编码（-1返回所用产品列表）
	* @param firstIndex 起始位置（从0开始）
	* @param maxResult 最大记录数（firstIndex与maxResult同时取0或-1返回所有记录）
	* @return 
	* @return GetProductListResp 
	* @throws
	 */
	public abstract GetProductListResp getProductList(Long cpCode, int firstIndex, int maxResult);

	/**
	 * 
	* @Title: getProductDetail 
	* @Description: 获取产品详情
	* @param productCode 产品编码
	* @return 
	* @return GetProductDetailResp 
	* @throws
	 */
	public abstract GetProductDetailResp getProductDetail(String productCode);

	/**
	 * 
	* @Title: getCategoryDetail 
	* @Description:获取栏目详情
	* @param categoryCode 栏目编码
	* @return 
	* @return GetCategoryDetailResp 
	* @throws
	 */
	public abstract GetCategoryDetailResp getCategoryDetail(String categoryCode);
	
	/**
	 * 
	* @Title: getCategoryList 
	* @Description: 获取栏目列表
	* @param categoryCode 栏目编码
	* @param firstIndex 起始位置（从0开始）
	* @param maxResult 最大记录数（firstIndex与maxResult同时取0或-1返回所有记录）
	* @return 
	* @return GetCategoryListResp 
	* @throws
	 */
	public abstract GetCategoryListResp getCategoryList(Long cpCode, String categoryCode, int firstIndex, int maxResult);

	/**
	 * 
	* @Title: getContentList 
	* @Description: 获取内容列表
	* @param categoryCode 栏目编码
	* @param firstIndex 起始位置（从0开始）
	* @param maxResult 最大记录数（firstIndex与maxResult同时取0或-1返回所有记录）
	* @return 
	* @return GetContentListResp 
	* @throws
	 */
	public abstract GetContentListResp getContentList(String categoryCode, String tag, String order, int firstIndex, int maxResult);

	/**
	 * 
	* @Title: getContentDetail 
	* @Description: 获取内容详情
	* @param contentCode 内容编码
	* @param productCode 产品编码
	* @return 
	* @return GetContentDetailResp 
	* @throws
	 */
	public abstract GetContentDetailResp getContentDetail(String contentCode, String productCode);
	
	/**
	 * 
	* @Title: getSeriesSubsetList 
	* @Description: 获取连续剧子集列表
	* @param seriesCode 剧头编码
	* @param firstIndex 起始位置（从0开始）
	* @param maxResult 最大记录数（firstIndex与maxResult同时取0或-1返回所有记录）
	* @return 
	* @return GetContentListResp 
	* @throws
	 */
	public abstract GetContentListResp getSeriesSubsetList(String seriesCode, int firstIndex, int maxResult);
	
	/**
	 * 
	* @Title: getRecommendList 
	* @Description: 获取内容推荐列表
	* @param contentCode 内容编码
	* @param productCode 产品编码
	* @param firstIndex 起始位置（从0开始）
	* @param maxResult 最大记录数（firstIndex与maxResult同时取0或-1返回所有记录）
	* @return 
	* @return GetContentListResp 
	* @throws
	 */
	public abstract GetContentListResp getRecommendList(String contentCode, String productCode, int firstIndex, int maxResult);
	
	/**
	 * @Title: getScrollmsgList
	 * @Description: 获滚动信息列表
	 * @param cpCode
	 * @param firstIndex
	 * @param maxResult
	 * @return
	 */
	public abstract GetScrollmsgListResp getScrollmsgList(long cpCode, int firstIndex, int maxResult);

	/**
	 * @Title: getScrollmsgDetail
	 * @Description: 获滚动信息详情
	 * @param code
	 * @return
	 */
	public abstract GetScrollmsgDetailResp getScrollmsgDetail(String code);
	
	/**
	 * @Title: getSearchList
	 * @Description: 获取搜索结果
	 * @param searchWord 搜索关键字
	 * @param productCode 产品编码
	 * @param firstIndex
	 * @param maxResult
	 * @return
	 */
	public abstract GetContentListResp getSearchList(String searchWord, String productCode, int firstIndex, int maxResult);

    public abstract GetChannelListResp getChannelList(Long cpCode, String zoneCode, int firstIndex, int maxResult);

    public abstract GetChannelSchedProgramListResp getChannelSchedProgramList(String channelCode, String day);

}

